// 模拟uni-app做的easycom模块，自动将指定组件目录下的指定命名的组件统一加载为全局组件
import Vue from 'vue'
export default {
  easyComponents (compPath = 'common', compReg = /^app-(.*).vue$/) {
    let context = require.context('@/components', true, /\.vue$/);
    if (context && context.keys) {
      context.keys().forEach(key => {
        // 如果当前加载的文件路径不是待指定加载的组件路径，则不进行公共组件封装
        if (key.indexOf('./' + compPath + '/') !== 0) {
          return;
        }
        const pathName = key.split('/');
        let fileName = pathName[pathName.length - 1];
        if (new RegExp(compReg).test(fileName)) {
          let compName = fileName.split('.vue')[0];
          Vue.component(compName, context(key).default);
        }
      });
    }
  }
}
